草庐IT

Swift 替代 performSelectorOnMainThread

全部标签

java - 有没有用枚举作为索引的数组的替代品?

我曾经在C中使用枚举作为索引。(每个枚举类似于int值的别名)示例:typedefenum{DOG,CAT,MOUSE}ANIMALS;int[3]age;...age[DOG]=4;age[CAT]=3;age[MOUSE]=10;使用枚举作为索引,我始终可以确定我正在更新正确的单元格。此外,我还需要数组的简单性。我想在Java中做同样的事情。但是,我似乎找不到一个简单的替代品。有谁知道可以像C中的Array+enum组合一样使用的替代品吗? 最佳答案 是的,有一个相当简单的。使用HashMaps.MaphashMap=newHa

java - Hibernate 的 Transaction.wasCommitted 方法的替代品是什么?

我正在尝试从旧版本的Hibernate(第3版)更新一些代码。它使用Hibernate5中不再存在的Transaction接口(interface)的两个方法。session.getTransaction().wasCommitted()session.getTransaction().wasRolledBack()Hibernate5中的等价物是什么? 最佳答案 您似乎在寻找session.getTransaction().getStatus()。例如,session.getTransaction().getStatus()==T

java - JSpinner ActionListener 替代品

在我的程序中,我想对数字使用JSpinner。这个数字稍后会被用来计算一些东西。每次用户单击其中一个微调器按钮(向上或向下)时,我希望结果自动更新。由于您不能将ActionListener添加到JSpinner(我认为这真的很奇怪),我在这里问如何做类似的事情(我已经为此准备了一个ActionListener,可以在任何其他监听器中更改当然)。 最佳答案 您可以添加ChangeListener到微调器。这将由按下按钮(或直接编辑字段)触发。spinner.addChangeListener(newChangeListener(){@

java - -Info 类名后缀的替代方法

我一直在阅读RobertC.Martin的CleanCode,并看到了臭名昭著的声明:AvoidwordslikeManager,Processor,Data,orInfointhenameofaclass.所以,很自然地,我尝试分解-Info从我的一个类(class)名字中。现在,我看到了各种StackOverflow问题,询问在-Manager的情况下该怎么做或-Processor.我看到评论说他们想不出-Data的时间。将是一个很好的类名。嗯,在我看来,-Data和-Info似乎更难排除。特别是,例如在下面的类(class)中。我有一个Server类如下:publicclassS

java - 在谷歌应用引擎数据存储中查询聚合 ("group by"的替代策略

无法查询AppEngine数据存储以获取聚合结果。例子:我有一个名为“Post”的实体,其中包含以下字段:Keyid,Stringnickname,StringpostText,intscore我的数据存储中有许多不同的昵称和每个昵称的许多帖子。如果我想要一个总分前十昵称的排行榜,我通常会有如下sql:selectnickname,sum(score)assumscorefromPostgroupbynicknameorderbysumscorelimit10这种类型的查询在googleappenginedatastorejavaapi(jdo或jpa)中是不可能的。我可以使用哪些替代

java - Java 中的 Thread.Sleep 替代方案

有人告诉我,使用Thread.Sleep()有时是一个糟糕的解决方案,因为人们想要在同步方法的Action循环中设置一些时间间隔。另一方面,我有两个不同的线程,它们在我的程序运行期间处于Activity状态,还有一个共享对象,当我在该共享对象中使用Object.wait(long)时,它会导致我的GUI卡住一些时间。对于这个问题,什么是更好的解决方案?更新这部分代码包括在GUI中启动的线程之一:classtemperatureUpextendsThread{@Overridepublicvoidrun(){while(true){try{GBC.increaseTemp();updat

java - DITA Open Toolkit 的开源替代品

我正在开发一个Web应用程序,它需要处理来自持久存储(可能是JCR)的DITA文档。DITAOpenToolkit是我所知道的唯一DITA实现,但它要求所有文档都存在于文件系统中。理想情况下,我想要像DITAOT一样工作的东西,但允许您提供解析器(很像XSLTURIResolver)以从其他来源提取引用的内容。如果人们有其他想法,例如使用虚拟文件系统来欺骗DITAOT工作,我也很想听听。谢谢!编辑:我忘了在原帖中提到我正在寻找一个开源解决方案,因为这是一个根据教育社区许可发布的项目。 最佳答案 经过一些评估,最新版本的XMLMind

java - MediaTracker - 如何使用它,有什么好处,或者有替代品吗?

在代码库中我们继承了MediaTracker的用法始终在每个代码块中本地完成。newMediaTracker(newCanvas());mediatracker.addImage(i,1);try{mediatracker.waitForAll();}catch(InterruptedExceptione){}mediatracker.removeImage(i);确定这是低效的,我最终用静态实例和方法替换了它:finalstaticprotectedMediaTrackermediatracker=newMediaTracker(newCanvas());staticprotecte

java - Spring 数据 JPA 中 getReference 方法的替代方法

我发现自己很难在SpringDataJPA中实现可自定义的方法。例如,我有一个Pet类,它有一个所有者(多对一关系)。如果我有一个方法到save(Petpet,intownerId)怎么办?.我怎样才能得到ownerId?使用Hibernate我就可以getReference像那样publicPetsave(Petpet,intownerId){if(!pet.isNew()&&get(pet.getId(),ownerId)==null){returnnull;}pet.setUser(em.getReference(Owner.class,ownerId));if(pet.isNe

java - 在 Java 9 中,是否可以使用 RMI 替代 HTTP 隧道?

所以我看到Java9中删除了基于RMI的HTTP隧道。我们销售在Tomcat中运行的商业Java软件。我们的客户将其安装在他们的Mac、Windows和Linux服务器上。然后,公众可以通过JavaSwing客户端界面访问该软件。它使用RMI与服务器软件进行通信。我们的大多数客户都有防火墙,阻止通过80/443以外的任何端口访问服务器。这对于Java8及更早版本不是问题,它们可以在动态端口上使用RMI或在防火墙阻止访问时切换到HTTP。但是,在Java9中删除HTTP代理功能意味着我们的大多数客户将无法再使用我们当前架构的软件。对于我们的客户来说,为来自公众的SSH访问配置他们的防火墙